Шутер от первого лица
Serious Sam - серия игр в жанре шутер от первого лица. Главным героем серии является Сэмюель Стоун по прозвищу Крутой Сэм. Игры серии отличаются абсурдным юмором и стилем повествования. Так, например, один из врагов(Безголовый камикадзе) - противореча тому факту, что у него отсутствует голова, громко кричит, набегая на игрока. Периодически Сэм иронизирует над персонажами других компьютерных игр, или находит съёмочную площадку, на которой снимают эпизод одной из предыдущих частей игры.
Игры серии разрабатываются студией Croteam с 2001 года. Так же над отдельными частями работали и другие компании. Популярность серии принёс фирменный игровой процесс, представляющий собой возврат к классической формуле шутеров от первого лица. Игрокам приходится расправляться с огромным количеством противников на экране на открытых пространствах, имея в своём распоряжении большой арсенал оружия. Общее количество врагов за всю игру порой достигает нескольких тысяч. Сражения перемежаются продвижением вперёд и исследованием уровней на предмет ключей, а также решением простых головоломок или преодолением препятствий.
Будучи изначально разработанными для персонального компьютера, игры серии быстро обрели популярность среди игроков: разрабатываются любительские дополнения, создаются специальные версии для игровых приставок, выпускаются новые сиквелы, переиздания. Серия насчитывает пять основных игр, 5 переизданий, 12 спин-оффов и несколько портов. Игры серии неоднократно получали множество положительных отзывов от критиков и игроков.
Сюжет повествует о некоем открытии, данном человечеству в виде заложенного в землю Египта артефакта могущественной цивилизации с планеты Сириус. С его помощью люди продвинулись в науке, однако наткнулись на беспощадное войско инопланетян во главе с их предводителем Менталом, уничтожающих всё на своём пути. Учёные решают использовать найденный при раскопках в Египте древний артефакт под названием «Ключ к вечности», который может переместить одного человека в далёкое прошлое для борьбы с захватчиками. Этим человеком оказывается Сэм Стоун(Крутой Сэм).
Serious Engine - порт на OpenPandora (прекрасно работающий на обычном Linux) версии игрового движка с открытым исходным кодом, разработанного Croteam для классических игр Serious Sam.
git clone --recursive https://github.com/ptitSeb/Serious-Engine.git
cd Serious-Engine
Serious Sam The Second Encounter:
mkdir build_ssam && cd build_ssam
cmake -DCMAKE_BUILD_TYPE=Release ../Sources/
make -j8
Serious Sam The First Encounter:
mkdir build_ssam-tfe && cd build_ssam-tfe
cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ../Sources/
make -j8
Получившиеся бинарники и содержимое папок Debug поместить в папку Bin соответствующих оригинальных игр.
Serious Sam Alpha Remake - это модификация, полностью представляющая того «Серьезного Сэма», каким он мог быть изначально, до переделки всех уровней и моделей. Летом 2013 года команда с SeriousSite.ru отправили письмо в Croteam с просьбой предоставить предварительную версию «Серьёзного Сэма». Роман Рибарич согласился на просьбу и поделился старой версией с согласия других членов команды Croteam. Команда SeriousSite.ru анонсировала выпуск будущей бесплатной модификации Serious Sam Origins. К сожалению, по неизвестным причинам команда Serious Sam Origins заморозила проект в 2016 году и полностью прекратила его разработку. Параллельно польский фанат игры с ником Zdzichu сообщил о создании модификации Serious Sam Alpha Remake в 2015 году на основе утекшего windows билда предрелизной версии игры. После четырех лет разработки, в 2019 году вышла финальная версия мода Serious Sam Alpha Remake. Подробнее можно прочитать тут: SeriousSamAlphaRemake Wiki
Сборка для SeriousSamClassic (opengl) и SeriousSamClassic-VK (opengl/vulkan) идентична. Ниже сборка игры вместе с модификацией Serious Sam Alpha Remake и XPLUS.
Сначала клонируем репозитории.
git clone https://github.com/tx00100xt/SeriousSamClassic-VK.git
git clone https://github.com/tx00100xt/SeriousSamAlphaRemake.git
В файлах SeriousSamClassic-VK/SamTFE/Sources/CMakeLists.txt
и SeriousSamClassic-VK/SamTFE/Sources/CMakeLists.txt
можно заменить march=native
на mtune="<Модель>"
и выставить оптимизацию -O3
Потом получим архивы с контентом модов и распакуем их в клонированнй репозиторий.
Перейдем в клонированный репозиторий:
cd SeriousSamClassic-VK
Получим данные для модификации Serious Sam Alpha Remake:
wget https://archive.org/download/serioussam-alpharemake-mod-data/SeriousSamAlphaRemake_v1.5.7z
7z x -oSamTFE SeriousSamAlphaRemake_v1.5.7z
или
for var in a b c d; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTFE-SSA/SeriousSamAlphaRemake_v1.5.tar.xz.parta$var; done; cat SeriousSamAlphaRemake_v1.5.tar.xz.part* > SeriousSamAlphaRemake_v1.5.tar.xz
tar -xJvpf SeriousSamAlphaRemake_v1.5.tar.xz -C SamTFE
Получим данные для модификации XPLUS:
wget https://archive.org/download/sam-tfe-xplus/SamTFE-XPLUS.tar.xz
wget https://archive.org/download/sam-tse-xplus/SamTSE-XPLUS.tar.xz
tar -xJvpf SamTFE-XPLUS.tar.xz -C SamTFE
tar -xJvpf SamTSE-XPLUS.tar.xz -C SamTSE
или
for var in a b c; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTFE-XPLUS/SamTFE-XPLUS.tar.xz.parta$var; done; cat SamTFE-XPLUS.tar.xz.part* > SamTFE-XPLUS.tar.xz
tar -xJvpf SamTFE-XPLUS.tar.xz -C SamTFE
for var in a b c; do wget https://github.com/tx00100xt/serioussam-mods/raw/main/SamTSE-XPLUS/SamTSE-XPLUS.tar.xz.parta$var; done; cat SamTSE-XPLUS.tar.xz.part* > SamTSE-XPLUS.tar.xz
tar -xJvpf SamTSE-XPLUS.tar.xz -C SamTSE
Далее соберём исполняемые файлы и библиотеки для игры Serious Sam Classic вместе с модификацией XPLUS:
cd SeriousSamClassic-VK
mkdir build
mkdir build-xplus
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j8
make install
cd ..
cd build-xplus
cmake -DCMAKE_BUILD_TYPE=Release -DXPLUS=TRUE ..
make -j8
make install
Далее соберём и библиотеки для модификации Serious Sam Alpha Remake:
cd SeriousSamAlphaRemake/Sources
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DTFE=TRUE ..
make ecc
make -j8
Получившиеся библиотеки libEntities.so
и libGame.so
из build/Debug
поместить в папку SamTFE/Mods/SSA/Bin
Также можно собрать rpm пакеты для установки в систему используя инструкцию:
Как собрать rpm пакет для игры Serious Sam на системе ALT Linux.
Теперь скопируем данные игр Serious Sam The First Encounter и Serious Sam The Second Encounter:
Чтобы начать игру, вам потребуются исходные ресурсы лицензионной копии игр Serious Sam: The First Encounter и Serious Sam: The Second Encounter.
Если у вас есть цифровая копия игры в Steam, то ресурсы можно найти в ~/.local/share/Steam/steamapps/common/Serious Sam Classic The Second Encounter/ (каталог установки игры Steam по умолчанию в Linux).
cd SeriousSamClassic-VK
rsync --progress -rh "$HOME/.local/share/Steam/steamapps/common/Serious Sam Classic The First Encounter/" SamTFE
rsync --progress -rh "$HOME/.local/share/Steam/steamapps/common/Serious Sam Classic The Second Encounter/" SamTSE
Если вы купили цифровую версию на GOG, вы можете распаковать ресурсы с помощью инструмента командной строки innoextract.
cd SeriousSamClassic-VK
innoextract --gog setup_serious_sam_the_first_encounter_2.0.0.10.exe
cp -vfr "app/"{*.gro,Levels,Help} SamTFE
rm setup_serious_sam_the_first_encounter_2.0.0.10.exe
rm -rf app
rm -rf tmp
innoextract --gog setup_serious_sam_the_second_encounter_2.1.0.8.exe
cp -vfr "app/"{*.gro,Levels,Help} SamTSE
rm setup_serious_sam_the_first_encounter_2.0.0.10.exe
rm -rf app
rm -rf tmp
rm -rf commonappdata
Если вы купили физическую копию игры и у вас есть ISO-образ вашего диска, вы можете распаковать ресурсы любым менеджером архивов. Ресурсы игры находятся в папке Install на диске. Просто скопируйте оттуда все файлы *.gro, а также каталог Levels в каталоги SeriousSamClassic-VK/SamTFE и SeriousSamClassic-VK/SamTSE соответственно для игр Serious Sam: The First Encounter и Serious Sam: The Second Encounter.
Для запуска игры используйте скрипт:
run_game.sh
или если вам нужен мониторинг MangoHUD
run_game_hud.sh
Вы можете изучать предупреждения, ошибки и ассемблерный код, выдаваемые компилятором, а также просматривать результат выполнения скомпилированной программы для архитектуры Эльбрус(E2K). Поддерживаются языки, C++, Fortran, Rust.
К серверам на процессорах архитектуры Эльбрус открылся бесплатный удаленный доступ, которым вы можете воспользоваться и возможно портировать что то полезное.
Данное руководство содержит основные материалы для обучения эффективному программированию на платформе Эльбрус и применимо на любом варианте Linux-подобной операционной системы.
Чат про администрирование и создание программ на платформе Эльбрус(E2K).